Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Опрацювання файлів з двійковими даними.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Електронні обчислювальні машини

Інформація про роботу

Рік:
2004
Тип роботи:
Лабораторна робота
Предмет:
Засоби системного програмування
Група:
КI

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра електронних обчислювальних машин Звіт про виконання лабораторної роботи № 10 з курсу „ Засоби системного програмування ” Тема: Опрацювання файлів з двійковими даними. Виконав: студент групи КІ-2 Львів – 2004 Мета роботи: Закріпити теоретичні знання та оволодіти практичними навиками в створенні програм для опрацювання даних, що міститься в дискових файлах. Засвоїти основні методи читання, запису даних з дискових файлів бінарного типу. Завдання на лабораторну роботу Розробити програмне забезпечення зі застосуванням техніки роботи з дисковими файлами відповідно до заданого варіанту. Програмне забезпечення повинно складатися з декількох модулів. Основна програма вводить та виводить дані які опрацьовуються функціями, що реалізовані як окремі модулі. Назву текстового файлу, в якому містяться дані для опрацювання, передавати через аргументи функції main(). Розміри та значення елементів матриць (в загальному не квадратних) вводити з текстового файлу. Параметри, що задають кількість рядків та стовпців повинні бути іменованими. Пам’ять під матриці виділяти динамічно. Для трикутних матриць (опираючись на їх структуру) виділяти мінімальні об’єми пам’яті. Обмін даними з функцією, що опрацьовує матрицю, виконувати через двійковий файл (тимчасовий). Назва файлу передається функції як параметр. Після використання тимчасовий файл знищувати. Результати обчислень записувати в текстовий файл. Назви файлів (тимчасового та для запису результатів) формувати на основі назви файлу з вхідними даними шляхом заміни розширення. Звернути особливу увагу на обробку помилок, які користувач може зробити при створені текстового файлу з вхідними даними. При вирішенні задач забезпечити дружній інтерфейс з користувачем. Варіант 23. Множення квадратної матриці на матрицю стовпець. Аналіз завдання та опис алгоритму вирішення задачі Матрицю (двовимірний масив) зберігаємо в одновимірному масиві. Для звертання до елементу m[i][j] використовуємо звертання m[i*x+j], де х – кількість елементів в одному рядку масива. При множенні двох матриць ми отримуємо нову матрицю, в якій число рядків таке ж як і в першій, а кількість стовпців – як в другій матриці. Зчитування даних проводиться з файлу, ім’я якого задається через аргументи функції main(). Результати обчислень записуються до файлу з таким же ім’ям, але з розширенням, зміненим на .out. Для обробки даних використовується функція, яка використовує тимчасовий файл, який створюється на основі вхідного файлу та видаляється після виконання функції. Текст програми Файл “Lab10.c”: #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <alloc.h> #include <string.h> #include "xmatrix.h" void Err (int e) { printf("ERROR: "); if (e==0) puts("Wrong argument count!"); else if (e==1) printf("File \"%s\" not found!",name); else if (e==2) printf("Incorrect matrix size in file \"%s\"!",name); puts("\nSYNTAX: <prog_name> <input_data_file>"); getchar(); exit(0); } void main (int argc,char *argv[]) { int i, j, *m, *s, *result, x; char buffer[40], *buf; FILE *fin, *fout, *ftmp; clrscr(); if (argc!=2) Err(0); name=(char*)calloc(40,sizeof(char)); strcpy(name,argv[1]); if ( !(fin=fopen(name,"rt")) ) Err(1); do fgets (buffer,40,fin); while(!strstr(buffer,"Size:\n")); fscanf(fin,"%d",&x); if (x<1) Err(2); m = (int*)calloc(x,sizeof(int)); s = m+x*x; result = s+x; do fgets(buffer,40,fin); while (!strstr(buffer,"First matrix:\n")); for (i=0;i<x*x;i++) fscanf(fin,"%d",m+i); do fgets(buffer,40,fin); while (!strstr(buffer,"Second matrix:\n")); for (i=0;i<x;i++) fscanf(fin,"%d",s+i); fclose(fin); if (buf=strstr(name,".")) *buf='\0'; strcat(name,".tmp"); ftmp=fopen(name,"wb"); fwrite(&m,sizeof(m),1,ftmp); fwrite(&x,sizeof(x),1,ftmp); fclose(ftmp); matrix_mult (name); if (buf = st...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини